package com.xiangge.flower;

import java.util.Scanner;

/*
    鲜花销售系统首页
*/
public class FlowerIndex {
    // 在成员变量中设置键盘输入
    public static final Scanner INPUT = new Scanner(System.in);

    // 准备一个存订单对象的数组
    public static final FlowerOrder[] orderlist = new FlowerOrder[5];

    // 让第一开始就初始化5条数据存入数组
    static {
        orderlist[0] = new FlowerOrder("1001","金色海岸-香槟玫瑰",10,318.0,"2016-12-12","王二妮"," ");
        orderlist[1] = new FlowerOrder("1002","初心永不变-白玫瑰",99,538.0,"2016-12-20","张欣雨"," ");
        orderlist[2] = new FlowerOrder("1003","梦里花开-紫色桔梗",40,148.0,"2016-12-24","王二妮","眼波如水");
        orderlist[3] = new FlowerOrder("1004","心花怒放-白色百合",120,188.0,"2016-12-26","王二妮","内层银灰色厚棉纸");
        orderlist[4] = new FlowerOrder("1005","致青春-无声的爱",1000,219.0,"2016-12-28","张欣雨","我爱你");
    }

    public static void main(String[] args) {
        while (true){
            System.out.println("===============欢迎光临\"七彩鲜花\"销售管理系统=====================");
            System.out.println("1.查询销售订单");
            System.out.println("2.修改销售订单");
            System.out.println("3.删除销售订单");
            System.out.println("4.系统退出");
            System.out.println("======================================================");

            // 键盘输入一个整数
            System.out.println("键盘输入您的选择：");
            int choice = INPUT.nextInt();

            // 判断选择的是哪个功能
            switch (choice){
                case 1:
                    // 查询所有订单的功能
                    findAll();
                    break;
                case 2:
                    // 修改订单的功能
                    update();
                    break;
                case 3:
                    // 删除订单的功能
                    delete();
                    break;
                default:
                    // 系统退出的功能
                    System.err.println("退出系统");
                    return;
            }
        }
    }

    // 定义方法，查询所有订单功能
    public static void findAll(){
        // 打印表头
        System.out.println("编号\t鲜花名称\t销售数量\t价格\t销售日期\t销售员\t备注");
        for (FlowerOrder flowerOrder : orderlist) {
            System.out.println(flowerOrder.getId()+"\t"+flowerOrder.getName()+"\t"+flowerOrder.getNumber()+"\t"+flowerOrder.getPrice()+"\t"+flowerOrder.getDate()+"\t"+flowerOrder.getSalEmp()+"\t"+flowerOrder.getBeiZhu());
            System.out.println();
        }
    }

    // 修改订单功能
    public static void update(){
        System.out.println("请输入销售编号：");
        String uid = INPUT.next();

        // 拿到uid去数组中遍历查找
        // 假设没有
        boolean flag = false;
        // 遍历数组，然后查询
        for (FlowerOrder Order : orderlist) {
            if (Order.getId().equals(uid)){
                flag = true;
                break;
            }
        }
        // 判断flag
        if (flag == false){
            System.out.println("对不起，你要修改的订单号不存在");
            return;
        }
        // flag==true 有订单
        System.out.println("你要修改的订单详细信息如下：");
        System.out.println();

        //输出表头信息
        System.out.println("编号\t鲜花名称\t销售数量\t价格\t销售日期\t销售员\t备注");
        for (FlowerOrder flowerOrder : orderlist) {
            if (flowerOrder.getId().equals(uid)){
                System.out.println(flowerOrder.getId()+"\t"+flowerOrder.getName()+"\t"+flowerOrder.getNumber()+"\t"+flowerOrder.getPrice()+"\t"+flowerOrder.getDate()+"\t"+flowerOrder.getSalEmp()+"\t"+flowerOrder.getBeiZhu());
            }
        }
        System.out.println();

        // 录入新的修改信息
        System.out.println("请输入修改后的鲜花名称：");
        String newName = INPUT.next();

        System.out.println("请输入修改后的销售数量：");
        int newNumber = INPUT.nextInt();

        System.out.println("请输入修改后的鲜花价格：");
        int newPrice = INPUT.nextInt();

        System.out.println("请输入修改后的销售日期：(yyyy-mm-dd)");
        String newDate = INPUT.next();

        System.out.println("请输入修改后的销售员：");
        String newSalEmp = INPUT.next();

        System.out.println("请输入修改后的备注：");
        String newBeiZhu = INPUT.next();

        // 封装对象
        FlowerOrder order = new FlowerOrder(uid,newName,newNumber,newPrice,newDate,newSalEmp,newBeiZhu);

        System.out.println("你确定要修改吗？(y/n)");
        String conf = INPUT.next();
        if ("y".equals(conf)){
            // 将封装对象order中的元素替换数组中与uid相同id的元素
            for (int i = 0; i < orderlist.length; i++) {
                FlowerOrder f = orderlist[i];
                if (f.getId().equals(order.getId())){
                    orderlist[i] = order;
                }
            }
            System.out.println("修改成功");
        }
        // 重新查询一遍
        findAll();
    }

    // 删除订单功能
    public static void delete(){
        System.out.println("请输入你要删除的订单编号：");
        String uid = INPUT.next();

        // 拿到uid去数组中遍历查找
        // 假设没有
        boolean flag = false;
        // 遍历数组，然后查询
        for (FlowerOrder Order : orderlist) {
            if (Order.getId().equals(uid)){
                flag = true;
                break;
            }
        }
        // 判断flag
        if (flag == false){
            System.out.println("对不起，你要删除的订单编号!");
            return;
        }
        // flag==true 有订单
        System.out.println("你要删除的订单详细信息如下：");
        System.out.println();

        //输出表头信息
        System.out.println("编号\t鲜花名称\t销售数量\t价格\t销售日期\t销售员\t备注");
        for (FlowerOrder flowerOrder : orderlist) {
            if (flowerOrder.getId().equals(uid)){
                System.out.println(flowerOrder.getId()+"\t"+flowerOrder.getName()+"\t"+flowerOrder.getNumber()+"\t"+flowerOrder.getPrice()+"\t"+flowerOrder.getDate()+"\t"+flowerOrder.getSalEmp()+"\t"+flowerOrder.getBeiZhu());
            }
        }
        System.out.println();

        // 封装对象
        FlowerOrder flowerOrder = new FlowerOrder(uid);

        // 判断是否确定要删除
        System.out.println("确定要删除吗？(y/n)");
        String conf = INPUT.next();
        if ("y".equals(conf)){
            // 将封装对象order中的元素替换数组中与uid相同id的元素
            for (int i = 0; i < orderlist.length; i++) {
                FlowerOrder f = orderlist[i];
                if (f.getId().equals(uid)){
                    orderlist[i] = null;
                    if (orderlist[i] != null){
                        System.out.println(flowerOrder.getId()+"\t"+flowerOrder.getName()+"\t"+flowerOrder.getNumber()+"\t"+flowerOrder.getPrice()+"\t"+flowerOrder.getDate()+"\t"+flowerOrder.getSalEmp()+"\t"+flowerOrder.getBeiZhu());
                    }
                }
            }
            System.out.println("修改成功");
        }
        // 重新查询一遍
        findAll();
    }
}
